home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / CIncludes / MediaHandlers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-11  |  8.3 KB  |  231 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        MediaHandlers.h
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. */
  16.  
  17. #ifndef __MEDIAHANDLERS__
  18. #define __MEDIAHANDLERS__
  19.  
  20.  
  21. #ifndef __MEMORY__
  22. #include <Memory.h>
  23. #endif
  24. /*    #include <Types.h>                                            */
  25. /*        #include <ConditionalMacros.h>                            */
  26. /*    #include <MixedMode.h>                                        */
  27.  
  28. #ifndef __IMAGECOMPRESSION__
  29. #include <ImageCompression.h>
  30. #endif
  31. /*    #include <Quickdraw.h>                                        */
  32. /*        #include <QuickdrawText.h>                                */
  33. /*    #include <QDOffscreen.h>                                    */
  34. /*        #include <Errors.h>                                        */
  35. /*    #include <Components.h>                                        */
  36. /*    #include <Windows.h>                                        */
  37. /*        #include <Events.h>                                        */
  38. /*            #include <OSUtils.h>                                */
  39. /*        #include <Controls.h>                                    */
  40. /*            #include <Menus.h>                                    */
  41. /*    #include <StandardFile.h>                                    */
  42. /*        #include <Dialogs.h>                                    */
  43. /*            #include <TextEdit.h>                                */
  44. /*        #include <Files.h>                                        */
  45.  
  46. #ifndef __MOVIES__
  47. #include <Movies.h>
  48. #endif
  49. /*    #include <Aliases.h>                                        */
  50. /*        #include <AppleTalk.h>                                    */
  51.  
  52. #ifdef __cplusplus
  53. extern "C" {
  54. #endif
  55.  
  56. #if GENERATINGPOWERPC
  57. #pragma options align=mac68k
  58. #endif
  59.  
  60. #ifdef __CFM68K__
  61. #pragma lib_export on
  62. #endif
  63.  
  64.  
  65. enum {
  66.     handlerHasSpatial            = 1 << 0,
  67.     handlerCanClip                = 1 << 1,
  68.     handlerCanMatte                = 1 << 2,
  69.     handlerCanTransferMode        = 1 << 3,
  70.     handlerNeedsBuffer            = 1 << 4,
  71.     handlerNoIdle                = 1 << 5,
  72.     handlerNoScheduler            = 1 << 6,
  73.     handlerWantsTime            = 1 << 7,
  74.     handlerCGrafPortOnly        = 1 << 8
  75. };
  76.  
  77. /* media task flags */
  78. enum {
  79.     mMustDraw                    = 1 << 3,
  80.     mAtEnd                        = 1 << 4,
  81.     mPreflightDraw                = 1 << 5,
  82.     mSyncDrawing                = 1 << 6
  83. };
  84.  
  85. /* media task result flags */
  86. enum {
  87.     mDidDraw                    = 1 << 0,
  88.     mNeedsToDraw                = 1 << 2,
  89.     mDrawAgain                    = 1 << 3,
  90.     mPartialDraw                = 1 << 4
  91. };
  92.  
  93. enum {
  94.     forceUpdateRedraw            = 1 << 0,
  95.     forceUpdateNewBuffer        = 1 << 1
  96. };
  97.  
  98. struct GetMovieCompleteParams {
  99.     short                            version;
  100.     Movie                            theMovie;
  101.     Track                            theTrack;
  102.     Media                            theMedia;
  103.     TimeScale                        movieScale;
  104.     TimeScale                        mediaScale;
  105.     TimeValue                        movieDuration;
  106.     TimeValue                        trackDuration;
  107.     TimeValue                        mediaDuration;
  108.     Fixed                            effectiveRate;
  109.     TimeBase                        timeBase;
  110.     short                            volume;
  111.     Fixed                            width;
  112.     Fixed                            height;
  113.     MatrixRecord                    trackMovieMatrix;
  114.     CGrafPtr                        moviePort;
  115.     GDHandle                        movieGD;
  116.     PixMapHandle                    trackMatte;
  117. };
  118. typedef struct GetMovieCompleteParams GetMovieCompleteParams;
  119.  
  120. extern pascal ComponentResult MediaInitialize(MediaHandler mh, GetMovieCompleteParams *gmc)
  121.  FIVEWORDINLINE(0x2F3C, 0x4, 0x501, 0x7000, 0xA82A);
  122. extern pascal ComponentResult MediaSetHandlerCapabilities(MediaHandler mh, long flags, long flagsMask)
  123.  FIVEWORDINLINE(0x2F3C, 0x8, 0x502, 0x7000, 0xA82A);
  124. extern pascal ComponentResult MediaIdle(MediaHandler mh, TimeValue atMediaTime, long flagsIn, long *flagsOut, const TimeRecord *movieTime)
  125.  FIVEWORDINLINE(0x2F3C, 0x10, 0x503, 0x7000, 0xA82A);
  126. extern pascal ComponentResult MediaGetMediaInfo(MediaHandler mh, Handle h)
  127.  FIVEWORDINLINE(0x2F3C, 0x4, 0x504, 0x7000, 0xA82A);
  128. extern pascal ComponentResult MediaPutMediaInfo(MediaHandler mh, Handle h)
  129.  FIVEWORDINLINE(0x2F3C, 0x4, 0x505, 0x7000, 0xA82A);
  130. extern pascal ComponentResult MediaSetActive(MediaHandler mh, Boolean enableMedia)
  131.  FIVEWORDINLINE(0x2F3C, 0x2, 0x506, 0x7000, 0xA82A);
  132. extern pascal ComponentResult MediaSetRate(MediaHandler mh, Fixed rate)
  133.  FIVEWORDINLINE(0x2F3C, 0x4, 0x507, 0x7000, 0xA82A);
  134. extern pascal ComponentResult MediaGGetStatus(MediaHandler mh, ComponentResult *statusErr)
  135.  FIVEWORDINLINE(0x2F3C, 0x4, 0x508, 0x7000, 0xA82A);
  136. extern pascal ComponentResult MediaTrackEdited(MediaHandler mh)
  137.  FIVEWORDINLINE(0x2F3C, 0, 0x509, 0x7000, 0xA82A);
  138. extern pascal ComponentResult MediaSetMediaTimeScale(MediaHandler mh, TimeScale newTimeScale)
  139.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50A, 0x7000, 0xA82A);
  140. extern pascal ComponentResult MediaSetMovieTimeScale(MediaHandler mh, TimeScale newTimeScale)
  141.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50B, 0x7000, 0xA82A);
  142. extern pascal ComponentResult MediaSetGWorld(MediaHandler mh, CGrafPtr aPort, GDHandle aGD)
  143.  FIVEWORDINLINE(0x2F3C, 0x8, 0x50C, 0x7000, 0xA82A);
  144. extern pascal ComponentResult MediaSetDimensions(MediaHandler mh, Fixed width, Fixed height)
  145.  FIVEWORDINLINE(0x2F3C, 0x8, 0x50D, 0x7000, 0xA82A);
  146. extern pascal ComponentResult MediaSetClip(MediaHandler mh, RgnHandle theClip)
  147.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50E, 0x7000, 0xA82A);
  148. extern pascal ComponentResult MediaSetMatrix(MediaHandler mh, MatrixRecord *trackMovieMatrix)
  149.  FIVEWORDINLINE(0x2F3C, 0x4, 0x50F, 0x7000, 0xA82A);
  150. extern pascal ComponentResult MediaGetTrackOpaque(MediaHandler mh, Boolean *trackIsOpaque)
  151.  FIVEWORDINLINE(0x2F3C, 0x4, 0x510, 0x7000, 0xA82A);
  152. extern pascal ComponentResult MediaSetGraphicsMode(MediaHandler mh, long mode, const RGBColor *opColor)
  153.  FIVEWORDINLINE(0x2F3C, 0x8, 0x511, 0x7000, 0xA82A);
  154. extern pascal ComponentResult MediaGetGraphicsMode(MediaHandler mh, long *mode, RGBColor *opColor)
  155.  FIVEWORDINLINE(0x2F3C, 0x8, 0x512, 0x7000, 0xA82A);
  156. extern pascal ComponentResult MediaGSetVolume(MediaHandler mh, short volume)
  157.  FIVEWORDINLINE(0x2F3C, 0x2, 0x513, 0x7000, 0xA82A);
  158. extern pascal ComponentResult MediaSetSoundBalance(MediaHandler mh, short balance)
  159.  FIVEWORDINLINE(0x2F3C, 0x2, 0x514, 0x7000, 0xA82A);
  160. extern pascal ComponentResult MediaGetSoundBalance(MediaHandler mh, short *balance)
  161.  FIVEWORDINLINE(0x2F3C, 0x4, 0x515, 0x7000, 0xA82A);
  162. extern pascal ComponentResult MediaGetNextBoundsChange(MediaHandler mh, TimeValue *when)
  163.  FIVEWORDINLINE(0x2F3C, 0x4, 0x516, 0x7000, 0xA82A);
  164. extern pascal ComponentResult MediaGetSrcRgn(MediaHandler mh, RgnHandle rgn, TimeValue atMediaTime)
  165.  FIVEWORDINLINE(0x2F3C, 0x8, 0x517, 0x7000, 0xA82A);
  166. extern pascal ComponentResult MediaPreroll(MediaHandler mh, TimeValue time, Fixed rate)
  167.  FIVEWORDINLINE(0x2F3C, 0x8, 0x518, 0x7000, 0xA82A);
  168. extern pascal ComponentResult MediaSampleDescriptionChanged(MediaHandler mh, long index)
  169.  FIVEWORDINLINE(0x2F3C, 0x4, 0x519, 0x7000, 0xA82A);
  170. extern pascal ComponentResult MediaHasCharacteristic(MediaHandler mh, OSType characteristic, Boolean *hasIt)
  171.  FIVEWORDINLINE(0x2F3C, 0x8, 0x51A, 0x7000, 0xA82A);
  172. extern pascal ComponentResult MediaGetOffscreenBufferSize(MediaHandler mh, Rect *bounds, short depth, CTabHandle ctab)
  173.  FIVEWORDINLINE(0x2F3C, 0xA, 0x51B, 0x7000, 0xA82A);
  174. extern pascal ComponentResult MediaSetHints(MediaHandler mh, long hints)
  175.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51C, 0x7000, 0xA82A);
  176. extern pascal ComponentResult MediaGetName(MediaHandler mh, Str255 name, long requestedLanguage, long *actualLanguage)
  177.  FIVEWORDINLINE(0x2F3C, 0xC, 0x51D, 0x7000, 0xA82A);
  178. extern pascal ComponentResult MediaForceUpdate(MediaHandler mh, long forceUpdateFlags)
  179.  FIVEWORDINLINE(0x2F3C, 0x4, 0x51E, 0x7000, 0xA82A);
  180. extern pascal ComponentResult MediaGetDrawingRgn(MediaHandler mh, RgnHandle *partialRgn)
  181.  FIVEWORDINLINE(0x2F3C, 0x4, 0x521, 0x7000, 0xA82A);
  182.  
  183. enum {
  184.     kMediaInitializeSelect        = 0x501,
  185.     kMediaSetHandlerCapabilitiesSelect = 0x502,
  186.     kMediaIdleSelect            = 0x503,
  187.     kMediaGetMediaInfoSelect    = 0x504,
  188.     kMediaPutMediaInfoSelect    = 0x505,
  189.     kMediaSetActiveSelect        = 0x506,
  190.     kMediaSetRateSelect            = 0x507,
  191.     kMediaGGetStatusSelect        = 0x508,
  192.     kMediaTrackEditedSelect        = 0x509,
  193.     kMediaSetMediaTimeScaleSelect = 0x50A,
  194.     kMediaSetMovieTimeScaleSelect = 0x50B,
  195.     kMediaSetGWorldSelect        = 0x50C,
  196.     kMediaSetDimensionsSelect    = 0x50D,
  197.     kMediaSetClipSelect            = 0x50E,
  198.     kMediaSetMatrixSelect        = 0x50F,
  199.     kMediaGetTrackOpaqueSelect    = 0x510,
  200.     kMediaSetGraphicsModeSelect    = 0x511,
  201.     kMediaGetGraphicsModeSelect    = 0x512,
  202.     kMediaGSetVolumeSelect        = 0x513,
  203.     kMediaSetSoundBalanceSelect    = 0x514,
  204.     kMediaGetSoundBalanceSelect    = 0x515,
  205.     kMediaGetNextBoundsChangeSelect = 0x516,
  206.     kMediaGetSrcRgnSelect        = 0x517,
  207.     kMediaPrerollSelect            = 0x518,
  208.     kMediaSampleDescriptionChangedSelect = 0x519,
  209.     kMediaHasCharacteristicSelect = 0x51A,
  210.     kMediaGetOffscreenBufferSizeSelect = 0x51B,
  211.     kMediaSetHintsSelect        = 0x51C,
  212.     kMediaGetNameSelect            = 0x51D,
  213.     kMediaForceUpdateSelect        = 0x51E,
  214.     kMediaGetDrawingRgnSelect    = 0x521
  215. };
  216.  
  217.  
  218. #ifdef __CFM68K__
  219. #pragma lib_export off
  220. #endif
  221.  
  222. #if GENERATINGPOWERPC
  223. #pragma options align=reset
  224. #endif
  225.  
  226. #ifdef __cplusplus
  227. }
  228. #endif
  229.  
  230. #endif /* __MEDIAHANDLERS__ */
  231.